控制存储器(CM):存放微程序的 ROM
微指令寄存器(CMDR):存放从 CM 中取出的微指令。
微地址形成部件:产生初始微地址、后继微地址。
微地址寄存器(CMAR):接收微地址形成部件送来的微地址。
工作过程
执行取微指令公共操作,机器开始运行时,自动将取指微程序入口地址放入 CMAR。
由机器指令的操作码字段通过微地址形成部件产生对应微程序入口地址,送入 CMAR。
从 CM 中逐条取出微指令执行。
执行完一条机器指令的微笑程序之后,又回到取指微程序的入口地址。
编码
直接编码:每个 bit 0,1 表示是否启用某个微操作。
字段直接编码:把互斥的微命令组合在同一个字段,相容的命令组合在不同字段,形成多个字段,缩短微指令字长,进行译码后,分段执行。每一段还需一个状态表示无操作,比如 3 bit 段只能有 7 个互斥指令
字段间接编码:某些微命令需要另一个字段的微命令进行解释。
格式
水平:一位对应一个控制信号,可并行执行几种基本操作。微程序短、速度快。微指令长、编写麻烦。
垂直:类似于机器指令操作码。只能执行一种基本操作。简单规整,便于编写。微程序长、执行慢,效率低。
混合:在垂直基础上增加简单的并行操作。微指令较短、便于编写。长度适当,执行速度加快。
other
微程序的个数 = 机器指令数 +(取指令 + 间址 + 中断周期)等公共微程序数
微指令地址形成:下地址字段、操作码译码形成、自增、分支转移、硬件产生等
动态微程序设计:能按照用户需求改变微程序,
毫微程序设计:在微程序上在增加一层毫微程序,微程序解析成毫微程序执行。